﻿float4x4 WorldViewProjectionMatrix : WORLDVIEWPROJECTION;

// Основная текстура
texture InputTexture;

// Сэмплер основной текстуры
sampler2D InputTextureSampler = sampler_state 
{
    Texture = <InputTexture>;
    MinFilter = LINEAR;
    MipFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
}; 

// Входные данные вертексного шейдера
struct VertexInput
{
    float4 Position	: POSITION;
    float2 TextureCoordiantes	: TEXCOORD0;
};

// Выходные данные вертексного шейдера
struct VertexOutput 
{
    float4 Position	: POSITION;
    float2 TextureCoordiantes	: TEXCOORD0;    
};
 
// Вертексный шейдер
VertexOutput VertexMain(VertexInput Input) 
{
    VertexOutput Output = (VertexOutput)0;
    Output.Position = mul(Input.Position, WorldViewProjectionMatrix);
    Output.TextureCoordiantes = Input.TextureCoordiantes;
    return Output;
}

float4 PixelMain(VertexOutput Input) : COLOR
{   
    return tex2D(InputTextureSampler, Input.TextureCoordiantes);
}

// Техника
technique Main 
{
    pass p0
    {
        CullMode = None;
        VertexShader = compile vs_2_0 VertexMain();
        PixelShader = compile ps_2_0 PixelMain();
    }
}

